package net.xumf.support.utils;

import java.math.BigDecimal;
import java.util.List;
import java.util.Random;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class CommonUtil {

    /**
     * 获取6位随机数
     * @return 6位随机数
     */
    public static int getSixRandomNumber() {
        return new Random().nextInt(999999);
    }

    /**
     * 判断{@link BigDecimal}的集合中是否存在数值与bigDecimal相等的，有则true，否则false
     *
     * @param list       {@link BigDecimal} 数组
     * @param bigDecimal {@link BigDecimal}
     * @return boolean
     */
    public static boolean existBigDecimal(List<BigDecimal> list, BigDecimal bigDecimal) {
        for (BigDecimal item : list) {
            if (bigDecimal.compareTo(item) == 0) return true;
        }
        return false;
    }

    /**
     * 首字符转大写
     *
     * @param source 源字符串
     * @return 转换后的字符串
     */
    public static String toUpperFirstChar(String source) {
        char[] charArray = source.toCharArray();
        charArray[0] -= 32;
        return String.valueOf(charArray);
    }

    /**
     * 如果是数字则返回本身，否则添加单引号
     *
     * @param str 字符串
     * @return {@link String}
     */
    public static String stringJoinFlag(String str) {
        if (isNumeric(str)) {
            return str;
        } else {
            return "'".concat(str).concat("'");
        }
    }

    /**
     * 利用正则表达式判断字符串是否是数字
     *
     * @param str 字符串
     * @return true 则是， false 则相反
     */
    public static boolean isNumeric(String str) {
        Pattern pattern = Pattern.compile("[0-9]*");
        Matcher isNum = pattern.matcher(str);
        return isNum.matches();
    }

}
